package cn.ffcs.uec.staff.model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import cn.ffcs.uec.common.vo.UecBdDefdoc;
import cn.ffcs.uec.staff.dao.UecTrainDao;
import cn.ffcs.uom.common.model.UomEntity;
import cn.ffcs.uom.common.util.ApplicationContextUtil;
import cn.ffcs.uom.common.util.StrUtil;
import lombok.Getter;
import lombok.Setter;

/**
 * @Title:23 人员教育培训
 * @Description:
 * @Copyright: FFCS（C） 2017
 * @Company: FFCS
 * @author Wang Yiren
 * @Version 0.0.1 date:2018年1月9日
 * @since JDK1.6
 */
public class UecTrain extends UomEntity implements Serializable {

	private static final long serialVersionUID = -5534232336096633711L;
	/**
	 * 人员教育培训标识
	 * @return
	 */
	public Long getTrainId() {
		return super.getId();
	}
	public void setTrainId(Long trainId) {
		super.setId(trainId);
	}
	/**
	 * 员工标识
	 */
	@Getter
	@Setter
	private Long staffId;
	@Getter
	@Setter
	private String nmStaffType;
	@Getter
	@Setter
	private Long monthId; // 账期
	@Getter
	@Setter
	private String pkPsndocSub; // 主键
	@Getter
	@Setter
	private String trmLocation; // 培训地点
	@Getter
	@Setter
	private String glbdef6; // 培训内容类别
	@Getter
	@Setter
	private String traim; // 培训目标
	@Getter
	@Setter
	private String actName; // 培训活动名称
	@Getter
	@Setter
	private String glbdef5; // 培训级别
	@Getter
	@Setter
	private String traType; // 培训类别
	@Getter
	@Setter
	private String trmCertifCode; // 培训证书编号
	@Getter
	@Setter
	private String certificateUnit; // 颁证单位
	@Getter
	@Setter
	private String trmCertifName; // 培训证书名称
	@Getter
	@Setter
	private String traMode; // 培训方式
	@Getter
	@Setter
	private Double traTime; // 培训学时
	@Getter
	@Setter
	private String begindate; // 培训开始日期
	@Getter
	@Setter
	private String traContent; // 培训内容
	@Getter
	@Setter
	private Double traCost; // 培训费用
	@Getter
	@Setter
	private String enddate; // 培训结束日期
	@Getter
	@Setter
	private String pkPsndoc; // 人员基本信息
	@Getter
	@Setter
	private Long absenceCount; // 缺勤次数
	@Getter
	@Setter
	private String actCode; // 培训活动编码
	@Getter
	@Setter
	private String assOption; // 考核评价
	@Getter
	@Setter
	private Double assResult; // 考核成绩
	@Getter
	@Setter
	private String certificateDate; // 获证日期
	@Getter
	@Setter
	private String creationtime; // 创建时间
	@Getter
	@Setter
	private String creator; // 创建人
	@Getter
	@Setter
	private Long dr; // 删除标示
	@Getter
	@Setter
	private String entrepreneur; // 主办单位
	@Getter
	@Setter
	private String lastflag; // 最近记录标志
	@Getter
	@Setter
	private String modifiedtime; // 修改时间
	@Getter
	@Setter
	private String modifier; // 修改人
	@Getter
	@Setter
	private String pkAct; // 培训活动
	@Getter
	@Setter
	private String pkOrg; // 组织
	@Getter
	@Setter
	private String purveyor; // 承办单位
	@Getter
	@Setter
	private String signonDt; // 报名日期
	@Getter
	@Setter
	private Long sourceType; // 参训来源
	@Getter
	@Setter
	private String ts; // 时间戳
	/**
	 * 创建对象实例
	 * @return
	 */
	public static UecTrain newInstance(){
		return new UecTrain();
	}
	
	/**
	 * 获取dao
	 */
	public UecTrainDao repository() {
		return (UecTrainDao) ApplicationContextUtil.getBean("uecTrainDao");
	}
	
	/**
	 * 获取培训类别traType
	 */
	public String getTraTypeName() {
		if (!StrUtil.isNullOrEmpty(this.getTraType())) {
			String sql = " SELECT * FROM  UEC_BD_DEFDOC T WHERE T.PK_DEFDOC = ? ";
			List<Object> params = new ArrayList<Object>();
			params.add(this.getTraType());
			List<UecBdDefdoc> list = this.repository().jdbcFindList(sql, params, UecBdDefdoc.class);
			if (list != null && list.size() > 0) {
				return list.get(0).getName();
			}
		}
		return "";
	}
	
	/**
	 * 获取培训内容类别--glbdef6
	 */
	public String getGlbdef6Name() {
		if (!StrUtil.isNullOrEmpty(this.getGlbdef6())) {
			String sql = " SELECT * FROM  UEC_BD_DEFDOC T WHERE T.PK_DEFDOC = ? ";
			List<Object> params = new ArrayList<Object>();
			params.add(this.getGlbdef6());
			List<UecBdDefdoc> list = this.repository().jdbcFindList(sql, params, UecBdDefdoc.class);
			if (list != null && list.size() > 0) {
				return list.get(0).getName();
			}
		}
		return "";
	}
	
	/**
	 * 获取参训方式--traMode
	 */
	public String getTraModeName() {
		if (!StrUtil.isNullOrEmpty(this.getTraMode())) {
			String sql = " SELECT * FROM  UEC_BD_DEFDOC T WHERE T.PK_DEFDOC = ? ";
			List<Object> params = new ArrayList<Object>();
			params.add(this.getTraMode());
			List<UecBdDefdoc> list = this.repository().jdbcFindList(sql, params, UecBdDefdoc.class);
			if (list != null && list.size() > 0) {
				return list.get(0).getName();
			}
		}
		return "";
	}
	
	/**
	 * 参训来源--sourceType
	 */
	
	public String getSourceTypeName() {
		if (!StrUtil.isNullOrEmpty(this.getSourceType())) {
			String sourceType = String.valueOf(this.getSourceType());
			if ("0".equals(sourceType)) {
				return "指定参训";
			} else if ("1".equals(sourceType)) {
				return "报名参训";
			} else if ("2".equals(sourceType)) {
				return "其他";
			} else if ("3".equals(sourceType)) {
				return "手工添加";
			} else if ("4".equals(sourceType)) {
				return "网大提供";
			} else if ("5".equals(sourceType)) {
				return "手工导入";
			} else {
				return "";
			}
		}
		return "";
	}
}
